import request from '@/utils/request'

const FRIEND_URL = '/friend'

/**
 * 获取好友列表
 * @param {number} page - 页码
 * @param {number} size - 每页数量
 * @returns {Promise} 返回好友列表数据
 */
export function getFriendList(page = 1, size = 10) {

  return request({
    url: `${FRIEND_URL}/list`,
    method: 'get',
    params: {
      page,
      size
    }
  })
}

/**
 * 搜索用户
 * @param {string} keyword - 搜索关键词（TF ID或邮箱）
 * @returns {Promise} 返回搜索结果
 */
export function searchFriend(keyword) {
  return request({
    url: `${FRIEND_URL}/search`,
    method: 'get',
    params: {
      keyword
    }
  })
}

/**
 * 添加好友
 * @param {string} targetId - 目标用户ID
 * @param {string} remark - 备注
 * @returns {Promise} 添加好友结果
 */
export function addFriend(targetId, remark = '') {
  return request({
    url: '/friend/request',
    method: 'post',
    data: {
      target: targetId,
      remark
    }
  })
}

/**
 * 更新好友备注
 * @param {string} friendId - 好友用户ID
 * @param {string} remark - 好友备注
 * @returns {Promise} 更新结果
 */
export function updateFriendRemark(friendId, remark) {
  return request({
    url: `/friend/remark`,
    method: 'put',
    data: {
      friendId,
      remark
    }
  })
}

/**
 * 删除好友
 * @param {string} userId - 用户ID
 * @returns {Promise} 删除结果
 */
export function deleteFriend(friendUserId) {
  return request({
    url: `/friend/${friendUserId}`,
    method: 'delete'
  })
}

// 获取好友请求列表
export function getFriendRequests() {
  return request({
    url: `/friend/requests`,
    method: 'get'
  })
}

// 获取好友请求数量
export function getFriendRequestCount() {
  return request({
    url: `/friend/request/count`,
    method: 'get'
  })
}

// 处理好友请求
export function handleFriendRequest(requestId, action) {
  return request({
    url: `/friend/request/${requestId}/handle`,
    method: 'post',
    data: {
      accept: action === 'accept'
    }
  })
}

// 获取用户信息
export function getFriendInfo(userId) {
  return request({
    url: `/friend/${userId}`,
    method: 'get'
  })
} 